// 别忘了加async
async function scheduleHtmlProvider() {
  // 此步为必须，用于加载这个工具，后续会增加更多方法
  await loadTool('AIScheduleTools')
  // 使用它们的时候务必带上await，否则没有系统alert的时停效果
  // Prompt的参数比较多，所以传了个对象，最后会返回用户输入的值
  try{
    const userInput = await getHtml()
    let c=document.getElementById('kbgrid_table_0')
    if(!c){
      throw new Error("课程表数据为空,请查询后重试,有问题请联系1772176598@qq.com")
    }
    return userInput
  }catch(error){
    console.error(error)
    await AIScheduleAlert(error.message)
    return 'do not continue'
  }
}
async function getHtml(iframeContent = "", frameContent = "", dom = document) {
  const ifrs = dom.getElementsByTagName("iframe");
  const frs = dom.getElementsByTagName("frame");
  if (ifrs.length) {
    for (let i = 0; i < ifrs.length; i++) {
      const dom = ifrs[i].contentDocument.body.parentElement;
      iframeContent += getHtml(iframeContent, frameContent, dom);
    }
  }
  if (frs.length) {
    for (let i = 0; i < frs.length; i++) {
      const dom = frs[i].contentDocument.body.parentElement;
      frameContent += getHtml(iframeContent, frameContent, dom);
    }
  }
  if (!ifrs.length && !frs.length) {
    return dom.querySelector('body').outerHTML
  }
  if (dom === document) {
    return document.getElementsByTagName('html')[0].innerHTML + iframeContent + frameContent
  }
  return iframeContent + frameContent;
}